home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 June: Reference Library / Dev.CD Jun 96 RL / Dev.CD Jun 96 RL.toast / Technical Documentation / develop / develop Issue 24 / develop Issue 24 code / Scriptable Database 1.0a15 / Blue / FileIterators.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-19  |  1.8 KB  |  72 lines  |  [TEXT/CWIE]

  1. #pragma once
  2.  
  3. #ifndef __FILEITERATORS__
  4. #define __FILEITERATORS__
  5.  
  6. #include <ConditionalMacros.h>
  7.  
  8. #include "FSSpecification.h"
  9.  
  10. //========================================================================================
  11. //    CLASS TAbstractFileIterator
  12. //========================================================================================
  13.  
  14. class TAbstractFileIterator
  15. {
  16. public:
  17.     virtual ~TAbstractFileIterator();
  18.     
  19.     virtual Boolean More() const = 0;
  20.     virtual void Next() = 0;
  21.     virtual TFSSpecification Current() const = 0;
  22.  
  23. private:
  24. };
  25.  
  26. //
  27. // Search flags for catalog searcher
  28. //
  29. enum
  30. {
  31.     kSeachFilesOnly                = 1,
  32.     kSearchDirectoriesOnly        = 2,
  33.     kSeachFilesAndDirectories    = 3,
  34.     kNameMustMatchExactly        = 4,
  35.     kOnlyOneMatch                = 8
  36. };
  37.  
  38. //========================================================================================
  39. //    CLASS TCatalogSearchIterator
  40. //========================================================================================
  41.  
  42. class TCatalogSearchIterator : public TAbstractFileIterator
  43. {
  44. public:
  45.     TCatalogSearchIterator(SInt32 vRefNum, CInfoPBRec& searchSpec, CInfoPBRec& searchMask, SInt32 flags = 0);
  46.     TCatalogSearchIterator(SInt32 vRefNum, unsigned char* fileName, OSType fileType = 0, OSType fileCreator = 0, SInt32 flags = 0);
  47.     virtual ~TCatalogSearchIterator();
  48.  
  49.     virtual Boolean                More() const;
  50.     virtual void                Next();
  51.     virtual TFSSpecification    Current() const;
  52.  
  53. private:
  54.     void                        InitializeParamBlock(SInt32 vRefNum, CInfoPBRec& searchSpec, CInfoPBRec& searchMask, SInt32 flags);
  55.     void                        ReadMoreInfoViaCatSearch();
  56.  
  57. private:
  58.      CSParam                        fParamBlock;
  59.     CInfoPBRec                    fSearchSpec;
  60.     CInfoPBRec                    fSearchMask;
  61.     
  62.     Handle                        fCatSearchBuffer;
  63.     FSSpec**                    fResultsBuffer;
  64.     
  65.     SInt32                        fCurrentEntry;
  66.     SInt32                        fEntriesInBuffer;
  67.     Boolean                        fCatsearchHasMoreDataToReturn;
  68. };
  69.  
  70.  
  71. #endif
  72.